﻿using System;
using PomodoroSuite.EntidadesNegocio.Enumeradores;
using PomodoroSuite.FW.Comun;
using PomodoroSuite.FW.Comun.Atributos;
using PomodoroSuite.FW.Comun.Atributos.Relaciones;

namespace PomodoroSuite.EntidadesNegocio
{
    [MapearTabla("Pomodoro")]
    public class Pomodoro : BOGenerico
    {
        #region " Propiedades "

        /// <summary>
        /// Identificador
        /// </summary>
        [CampoTabla(true)]
        public int IdPomodoro { get; set; }

        /// <summary>
        /// Identificador del set de tareas al que pertenece el pomodoro
        /// </summary>
        [CampoTabla]
        public int IdTareaSet { get; set; }

        /// <summary>
        /// Hora de inicio del pomodoro
        /// </summary>
        [CampoTabla]
        public DateTime HoraInicio { get; set; }

        /// <summary>
        /// Hora de finalización del pomodoro,
        /// generalmente será después de 25 minutos, 
        /// pero hay casos en los que se cancela el pomodoro
        /// </summary>
        [CampoTabla]
        public DateTime? HoraFinalizacion { get; set; }

        /// <summary>
        /// Número de interrupciones internas del pomodoro
        /// </summary>
        [CampoTabla]
        public int NumeroInterrupcionesInternas { get; set; }

        /// <summary>
        /// Número de interrupciones externas del pomodoro
        /// </summary>
        [CampoTabla]
        public int NumeroInterrupcionesExternas { get; set; }

        /// <summary>
        /// Estado del pomodoro
        /// </summary>
        [CampoTabla]
        public Estado EstadoPomodoro { get; set; }

        #endregion

        #region " Propiedades - Relaciones "

        /// <summary>
        /// Relación al set de tareas
        /// </summary>
        [MuchosAUno("IdTareaSet")]
        public TareaSet ObjTareaSet { get; set; }

        #endregion
    }
}
